/*
 * ResourceStrategy.h
 *
 *  Created on: 03/10/2009
 *      Author: nik0l4z
 */

#ifndef RESOURCESTRATEGY_H_
#define RESOURCESTRATEGY_H_
#include "iostream"
#include "../../Model/Almacenamiento.h"
#include <string>
#include "ContenedorComprimido.h"
using namespace std;


class ResourceStrategy {
	public: ResourceStrategy();

	public: virtual void saludar();

	public: virtual ~ResourceStrategy();

	public: virtual Almacenamiento *getStorage() const;

	protected: Almacenamiento *storage;

	private: bool CompressMode;

	private: ContenedorComprimido *compressBucket;

	public: void setStorage(Almacenamiento *storage);

	public: virtual int Save(string& dato, int posicion);

	public: virtual void Update(string& dato, int posicionArchivo);

	public: virtual void Delete(int posicionArchivo);

	public: virtual string GetData(int posicionArchivo);

	public: virtual void persistOldData();

	public: virtual void setCompressMode();

	public: virtual bool getCompressMode();

	public: virtual void setCompressor(ContenedorComprimido*);

	public: virtual ContenedorComprimido* getCompressor();


};

#endif /* RESOURCESTRATEGY_H_ */
